POJ 2993 Emag eht htiw Em Pleh(水模拟)
Emag eht htiw Em Pleh
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 1950 | Accepted: 1315 |
Description
This problem is a reverse case of the problem 2996. You are given the output of the problem H and your task is to find the corresponding input.
Input
according to output of problem 2996.
Output
according to input of problem 2996.
Sample Input
White: Ke1,Qd1,Ra1,Rh1,Bc1,Bf1,Nb1,a2,c2,d2,f2,g2,h2,a3,e4 Black: Ke8,Qd8,Ra8,Rh8,Bc8,Ng8,Nc6,a7,b7,c7,d7,e7,f7,h7,h6
Sample Output
+---+---+---+---+---+---+---+---+ |.r.|:::|.b.|:q:|.k.|:::|.n.|:r:| +---+---+---+---+---+---+---+---+ |:p:|.p.|:p:|.p.|:p:|.p.|:::|.p.| +---+---+---+---+---+---+---+---+ |...|:::|.n.|:::|...|:::|...|:p:| +---+---+---+---+---+---+---+---+ |:::|...|:::|...|:::|...|:::|...| +---+---+---+---+---+---+---+---+ |...|:::|...|:::|.P.|:::|...|:::| +---+---+---+---+---+---+---+---+ |:P:|...|:::|...|:::|...|:::|...| +---+---+---+---+---+---+---+---+ |.P.|:::|.P.|:P:|...|:P:|.P.|:P:| +---+---+---+---+---+---+---+---+ |:R:|.N.|:B:|.Q.|:K:|.B.|:::|.R.| +---+---+---+---+---+---+---+---+
Source
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; const int MAXN=40; char map[MAXN][MAXN]; char str1[40]; char str2[40]; int main() { // freopen("in.txt","r",stdin); // freopen("out.txt","w",stdout); for(int i=0;i<8;i++)//行 { for(int j=0;j<8;j++) { map[2*i][4*j]='+'; map[2*i+1][4*j]='|'; map[2*i][4*j+1]='-'; map[2*i][4*j+2]='-'; map[2*i][4*j+3]='-'; } map[2*i][32]='+'; map[2*i+1][32]='|'; map[2*i][33]='\0'; if(i==7) { for(int j=0;j<8;j++) { map[2*i+2][4*j]='+'; map[2*i+2][4*j+1]='-'; map[2*i+2][4*j+2]='-'; map[2*i+2][4*j+3]='-'; } map[2*i+2][32]='+'; map[2*i+2][33]='\0'; } for(int j=0;j<8;j++) { if((i+j)%2==0) { map[2*i+1][4*j+1]='.'; map[2*i+1][4*j+2]='.'; map[2*i+1][4*j+3]='.'; } else { map[2*i+1][4*j+1]=':'; map[2*i+1][4*j+2]=':'; map[2*i+1][4*j+3]=':'; } } map[2*i+1][33]='\0'; } scanf("%s%s",&str1,&str2); //printf("%s\n%s\n",str1,str2); if(strcmp(str1,"White:")==0) { for(int i=0;str2[i]!=0;) { if(str2[i]==','){i++;continue;} if(str2[i]>='A'&&str2[i]<='Z')//大写字母 { int x=8-(str2[i+2]-'0'); int y=str2[i+1]-'a'; map[2*x+1][4*y+2]=str2[i]; i+=3; } else { int x=8-(str2[i+1]-'0'); int y=str2[i+0]-'a'; map[2*x+1][4*y+2]='P'; i+=2; } } } else { for(int i=0;str2[i]!=0;) { if(str2[i]==','){i++;continue;} if(str2[i]>='A'&&str2[i]<='Z')//大写字母 { int x=8-(str2[i+2]-'0'); int y=str2[i+1]-'a'; map[2*x+1][4*y+2]=str2[i]-'A'+'a'; i+=3; } else { int x=8-(str2[i+1]-'0'); int y=str2[i+0]-'a'; map[2*x+1][4*y+2]='p'; i+=2; } } } //重复一遍 scanf("%s%s",&str1,&str2); //printf("%s\n%s\n",str1,str2); if(strcmp(str1,"White:")==0) { for(int i=0;str2[i]!=0;) { if(str2[i]==','){i++;continue;} if(str2[i]>='A'&&str2[i]<='Z')//大写字母 { int x=8-(str2[i+2]-'0'); int y=str2[i+1]-'a'; map[2*x+1][4*y+2]=str2[i]; i+=3; } else { int x=8-(str2[i+1]-'0'); int y=str2[i+0]-'a'; map[2*x+1][4*y+2]='P'; i+=2; } } } else { for(int i=0;str2[i]!=0;) { if(str2[i]==','){i++;continue;} if(str2[i]>='A'&&str2[i]<='Z')//大写字母 { int x=8-(str2[i+2]-'0'); int y=str2[i+1]-'a'; map[2*x+1][4*y+2]=str2[i]-'A'+'a'; i+=3; } else { int x=8-(str2[i+1]-'0'); int y=str2[i+0]-'a'; map[2*x+1][4*y+2]='p'; i+=2; } } } for(int i=0;i<17;i++) printf("%s\n",map[i]); return 0; }
人一我百!人十我万!永不放弃~~~怀着自信的心,去追逐梦想